package com.lekang.ZcqEntity;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data

public class RefundRecord {

    /**
     * 主键ID
     * 数据库字段：id，自增主键
     */

    private Long id;

    /**
     * 退款编号
     * 数据库字段：refund_no，唯一索引
     */

    private String refundNo;

    /**
     * 订单编号
     * 数据库字段：order_no，普通索引
     */

    private String orderNo;

    /**
     * 退款金额（元）
     * 数据库字段：refund_amount，精度10位，小数2位
     */

    private BigDecimal refundAmount;

    /**
     * 申请人ID（关联sys_user表user_id）
     * 数据库字段：applicant，外键关联sys_user.user_id
     */

    private Long applicant;

    /**
     * 申请人名称（非数据库字段，通过关联sys_user表查询返回，用于前端显示）
     */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private String applicantName;

    /**
     * 申请时间
     * 数据库字段：application_time


    /**
     * 退款时间
     * 数据库字段：refund_time，可为null
     */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime applicationTime;
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")

    private LocalDateTime refundTime;

    /**
     * 退款订单状态
     * 数据库字段：refund_order_status
     * 取值：0-已退款，1-待执行，2-已执行
     */

    private String refundOrderStatus;

    /**
     * 退款状态（与前端状态筛选对应）
     * 数据库字段：refund_status
     * 取值：0-退款成功，1-退款处理中，2-退款失败
     */

    private String refundStatus;

    /**
     * 退款原因
     * 数据库字段：refund_reason，文本类型
     */

    private String refundReason;

    /**
     * 退款渠道
     * 数据库字段：refund_channel
     */

    private String refundChannel;

    /**
     * 退款方式
     * 数据库字段：refund_method
     */

    private String refundMethod;

    /**
     * 失败状态码
     * 数据库字段：failure_status_code
     */

    private String failureStatusCode;

    /**
     * 失败原因
     * 数据库字段：failure_reason，文本类型
     */

    private String failureReason;

    /**
     * 额外字段1
     * 数据库字段：extra_field1

    private String extraField1;

    /**
     * 额外字段2
     * 数据库字段：extra_field2
     */

    private String extraField2;

    /**
     * 创建时间（MyBatis-Plus自动填充）
     */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;

    /**
     * 更新时间（MyBatis-Plus自动填充）
     */
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;

    /**
     * 删除标志（0-存在，2-删除，MyBatis-Plus逻辑删除）
     */

    private Integer delFlag;
}